<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="NPOWEST rule set"
    xmlns="http://pmd.sf.net/ruleset/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
    xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
    <description>NPOWEST code style rule set</description>

    <rule ref="rulesets/cleancode.xml/BooleanArgumentFlag"/>
    <rule ref="rulesets/cleancode.xml/ElseExpression"/>
    <rule ref="rulesets/cleancode.xml/IfStatementAssignment"/>
    <rule ref="rulesets/cleancode.xml/DuplicatedArrayKey"/>
    <rule ref="rulesets/cleancode.xml/ErrorControlOperator"/>
    <rule ref="rulesets/cleancode.xml/MissingImport"/>
    <rule ref="rulesets/cleancode.xml/UndefinedVariable"/>

    <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
        <properties>
            <property name="reportLevel" value="21"/>
            <property name="showClassesComplexity" value="false"/>
            <property name="showMethodsComplexity" value="false"/>
        </properties>
    </rule>
    <rule ref="rulesets/codesize.xml/NPathComplexity"/>
    <rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
        <properties>
            <property name="ignore-whitespace" value="true" />
        </properties>
    </rule>
    <rule ref="rulesets/codesize.xml/ExcessiveClassLength">
        <properties>
            <property name="ignore-whitespace" value="true" />
        </properties>
    </rule>
    <rule ref="rulesets/codesize.xml/ExcessiveParameterList">
        <properties>
            <property name="minimum" value="18"/>
        </properties>
    </rule>
    <rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>
    <rule ref="rulesets/codesize.xml/TooManyFields">
        <properties>
            <property name="maxfields" value="20"/>
        </properties>
    </rule>
    <rule ref="rulesets/codesize.xml/TooManyMethods">
        <properties>
            <property name="ignorepattern" value="(^(set|get))i"/>
        </properties>
    </rule>
    <rule ref="rulesets/codesize.xml/TooManyPublicMethods">
        <properties>
            <property name="maxmethods" value="12"/>
            <property name="ignorepattern" value="(^(set|get))i"/>
        </properties>
    </rule>
    <rule ref="rulesets/codesize.xml/ExcessiveClassComplexity">
        <properties>
            <property name="maximum" value="130"/>
        </properties>
    </rule>

    <rule ref="rulesets/controversial.xml"/>

    <rule ref="rulesets/design.xml"/>

    <rule ref="rulesets/naming.xml/LongClassName"/>
    <rule ref="rulesets/naming.xml/ShortClassName"/>
    <rule ref="rulesets/naming.xml/ShortVariable">
        <properties>
            <property name="exceptions" value="i,id,tz,si"/>
        </properties>
    </rule>

    <rule ref="rulesets/naming.xml/LongVariable"/>
    <rule ref="rulesets/naming.xml/ShortMethodName">
        <properties>
            <property name="minimum" value="2"/>
        </properties>
    </rule>
    <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass"/>
    <rule ref="rulesets/naming.xml/ConstantNamingConventions"/>
    <rule ref="rulesets/naming.xml/BooleanGetMethodName"/>

    <rule ref="rulesets/unusedcode.xml/UnusedPrivateField" />
    <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable" >
        <properties>
            <property name="allow-unused-foreach-variables" value="true"/>
        </properties>
    </rule>
    <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod" />

    <exclude-pattern>var/*</exclude-pattern>
    <exclude-pattern>vendor/*</exclude-pattern>
</ruleset>